﻿using MediatR;
using ProduceBasicData.ErrorCode;

namespace ProduceBasicData.Api.Application.Command.IncomingMaterialsManage
{
    /// <summary>
    /// 创建入库检验单命令
    /// </summary>
    public class CreateIncomingInspectionCommand : IRequest<ApiResult<int>>
    {
        /// <summary>
        /// 检验单号（前端自动生成）
        /// </summary>
        public string? InspectionNo { get; set; }

        /// <summary>
        /// 关联的检验方案ID（外键，必传）
        /// </summary>
        public int InspectionSchemeId { get; set; }

        /// <summary>
        /// 关联的物料ID（外键，必传）
        /// </summary>
        public int IncomingMaterialsId { get; set; }

        /// <summary>
        /// 本次检验涉及的物料总数（必传）
        /// </summary>
        public int TotalQuantity { get; set; }

        /// <summary>
        /// 检验结果（新增时可空，检验后填充，如“合格”“不合格”）
        /// </summary>
        public string? Result { get; set; }

        /// <summary>
        /// 检验状态（false=待检验，true=已完成，新增时默认false）
        /// </summary>
        public bool State { get; set; } = false; // 新增默认待检验

        /// <summary>
        /// 批次号（从物料数据反填，可空）
        /// </summary>
        public string? BatchNo { get; set; }

        /// <summary>
        /// 供应商（从物料数据反填，可空）
        /// </summary>
        public string? Supplier { get; set; }

        /// <summary>
        /// 描述（前端手动输入，可空）
        /// </summary>
        public string? Description { get; set; }

        /// <summary>
        /// 创建人（前端从Pinia获取，必传）
        /// </summary>
        public string? CreateName { get; set; }

        /// <summary>
        /// 创建时间（前端生成，必传）
        /// </summary>
        public DateTime CreateTime { get; set; }
    }
}
